<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="../assets/favicon.ico">
<title>source\jindo.Calendar.js - Jindo Component - AjaxUI@NHN</title>
<link rel="stylesheet" type="text/css" href="../assets/prettify/prettify-min.css" media="screen">
<script type="text/javascript">
	var isMobile = (function() {
		var r = window.devicePixelRatio || 1;
		if (/windows phone/i.test(navigator.userAgent)) { r = 2; }
		
		var s = Math.max(screen.width / r, screen.height / r);
		
		var m = s < 1024;
		var href = m ? "api.mobile.css" : "api.css";
		document.write('<link rel="stylesheet" type="text/css" href="../assets/' + href + '" media="screen">');
		
		return m;
	})();
</script>

<script type="text/javascript" src="../assets/jindo.desktop.min.js"></script>
<script type="text/javascript" src="../assets/jindo_component.min.js"></script>
</head>
<body class="api-page">
<div id="wrap" class="api-main"><!-- 2Depth 접기 : lft_fold 추가 -->

	<div id="header">
		<h1><a href="../index.html"><span class="blind">JindoJS</span></a></h1>
		<div class="info">
			<span class="version">version 1.6.0</span>
			<span class="bar">|</span>
			<span class="help"><span class="ic_help"></span><a href="http://devcode.nhncorp.com/projects/jindo-component/issue" target="_blank">버그신고/문의</a></span>
		</div>
		<div class="menu">
			<button type="button" id="toggle_search_btn" class="btn_sch"><span class="blind">검색</span></button>
			<button type="button" id="toggle_list_btn" class="btn_snb btn_snb_on"><span class="blind">메뉴</span></button>
			<!-- [D] 클릭시 btn_sch_on,btn_snb_on 추가 -->
		</div>
	</div>

	<!-- sch_frm -->
	<div class="sch_frm hide_when_small">
		<h2 class="blind">검색</h2>
		<div class="filter">
			<input type="search" id="api-filter" placeholder="검색어를 입력하세요.">
		</div>
		<div id="search-tab" style="display:none;">
			<ul class="tabs">
			<li class="tc-tab">전체</li>
			<li class="tc-tab">키워드</li>
			<li class="tc-tab">클래스</li>
			<li class="tc-tab">메서드</li>
			<li class="tc-tab">프로퍼티</li>
			<li class="tc-tab">이벤트</li>
			</ul>
			<div class="panels">
				<ul id="api-all" class="tc-panel"></ul>
				<ul id="api-keywords" class="tc-panel"></ul>
				<ul id="api-classes" class="tc-panel"></ul>
				<ul id="api-methods" class="tc-panel"></ul>
				<ul id="api-attrs" class="tc-panel"></ul>
				<ul id="api-events" class="tc-panel"></ul>
			</div>

		</div>
	</div>
	<!-- // sch_frm -->

	<!-- container -->
	<div id="container">
		<!-- left-columns -->
		<div id="left-columns" class="sidemenu has_scrollbar">
			<h2 class="blind"><a href="../index.html"><span>APIs</span></a></h2>
<div class="snb depth1 scrollbar hide_when_small">
	<!-- [D] style="width:135px; height:384px; -->
	<div class="scrollbar-box">
		<div class="scrollbar-content">
			<div><ul>
			            <li class="">
			            	<a href="../classes/jindo.Accordion.html" class="">
			                	Accordion
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.AjaxHistory.html" class="">
			                	AjaxHistory
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.BrowseButton.html" class="">
			                	BrowseButton
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Cache.html" class="">
			                	Cache
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Calendar.html" class="">
			                	Calendar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Canvas.html" class="">
			                	Canvas
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CheckBox.html" class="">
			                	CheckBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CircularRolling.html" class="">
			                	CircularRolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Clipboard.html" class="">
			                	Clipboard
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Component.html" class="">
			                	Component
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DataBridge.html" class="">
			                	DataBridge
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DatePicker.html" class="">
			                	DatePicker
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DefaultTextValue.html" class="">
			                	DefaultTextValue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Dialog.html" class="">
			                	Dialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DragArea.html" class="">
			                	DragArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DropArea.html" class="">
			                	DropArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DynamicTree.html" class="">
			                	DynamicTree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Effect.html" class="">
			                	Effect
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FileUploader.html" class="">
			                	FileUploader
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FloatingLayer.html" class="">
			                	FloatingLayer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Foggy.html" class="">
			                	Foggy
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Formatter.html" class="">
			                	Formatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.HTMLComponent.html" class="">
			                	HTMLComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.InlineTextEdit.html" class="">
			                	InlineTextEdit
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerEffect.html" class="">
			                	LayerEffect
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerManager.html" class="">
			                	LayerManager
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerPosition.html" class="">
			                	LayerPosition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LazyLoading.html" class="">
			                	LazyLoading
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ModalDialog.html" class="">
			                	ModalDialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MouseGesture.html" class="">
			                	MouseGesture
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MultipleAjaxRequest.html" class="">
			                	MultipleAjaxRequest
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumberFormatter.html" class="">
			                	NumberFormatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumericStepper.html" class="">
			                	NumericStepper
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Pagination.html" class="">
			                	Pagination
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Rolling.html" class="">
			                	Rolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RollingChart.html" class="">
			                	RollingChart
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverArea.html" class="">
			                	RolloverArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverClick.html" class="">
			                	RolloverClick
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBar.html" class="">
			                	ScrollBar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBox.html" class="">
			                	ScrollBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectArea.html" class="">
			                	SelectArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectBox.html" class="">
			                	SelectBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Slider.html" class="">
			                	Slider
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.StarRating.html" class="">
			                	StarRating
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TabControl.html" class="">
			                	TabControl
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TextRange.html" class="">
			                	TextRange
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Timer.html" class="">
			                	Timer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Transition.html" class="">
			                	Transition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Tree.html" class="">
			                	Tree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UIComponent.html" class="">
			                	UIComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UploadQueue.html" class="">
			                	UploadQueue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.WatchInput.html" class="">
			                	WatchInput
								
								

							    
						        
			            	</a>
			            </li>
			        </ul></div>
		</div>
	</div>
	<div class="scrollbar-v">
		<div class="scrollbar-button-up"></div>
		<div class="scrollbar-track">
			<div class="scrollbar-thumb" style="top: 0px; height: 222px; "></div>
		</div>
		<div class="scrollbar-button-down"></div>
	</div>
</div>


<button type="button" title="펼치기" class="btn_open">바로가기 열기<span class="ic"></span></button>
<button type="button" title="접기" class="btn_close">바로가기 닫기<span class="ic"></span></button>

		</div>
		<!-- // left-columns -->

		<!-- main content -->
		<div id="main">
			<div class="main_fix">
				<div class="content">
	
	<h1 class="blind">source/jindo.Calendar.js</h1>
	<div class="tc-panel first">
		<dl class="relation">
			<dt>파일명</dt>
			<dd>jindo.Calendar.js</dd>
			<dt>경로</dt>
			<dd>source/</dd>
		</dl>
		<div id="file" class="file">
		    <pre class="code prettyprint linenums">/**
	@fileOverview&nbsp;특정&nbsp;연/월의&nbsp;달력&nbsp;출력을&nbsp;위한&nbsp;컴포넌트
	@author&nbsp;senxation
	@version&nbsp;#__VERSION__#
**/
/**
	특정&nbsp;년도/월의&nbsp;달력을&nbsp;지정한&nbsp;엘리먼트에&nbsp;표시하는&nbsp;컴포넌트이다.
	미리&nbsp;지정해놓은&nbsp;엘리먼트에&nbsp;삽입되기&nbsp;때문에&nbsp;원하는&nbsp;디자인과&nbsp;마크업&nbsp;구조를&nbsp;적용할&nbsp;수&nbsp;있으며&nbsp;공휴일&nbsp;지정&nbsp;등&nbsp;다양한&nbsp;기능을&nbsp;활용할&nbsp;수&nbsp;있다.
	
	@class&nbsp;jindo.Calendar
	@extends&nbsp;jindo.UIComponent
	
	@keyword&nbsp;calendar,&nbsp;달력
**/
jindo.Calendar&nbsp;=&nbsp;jindo.$Class({
	/**&nbsp;@lends&nbsp;jindo.Calendar.prototype&nbsp;*/
	/**
		Calendar&nbsp;컴포넌트를&nbsp;생성한다.
		@constructor
		@param&nbsp;{String&nbsp;|&nbsp;HTMLElement}&nbsp;sLayerId&nbsp;달력을&nbsp;출력할&nbsp;레이어의&nbsp;id&nbsp;혹은&nbsp;레이어&nbsp;자체.
		@param&nbsp;{Object}&nbsp;[htOption]&nbsp;초기화&nbsp;옵션&nbsp;설정을&nbsp;위한&nbsp;객체.
			@param&nbsp;{String}&nbsp;[htOption.sClassPrefix=&quot;calendar-&quot;]&nbsp;초기&nbsp;HTML/CSS구조에서&nbsp;필요한&nbsp;className&nbsp;앞에&nbsp;붙는&nbsp;prefix를&nbsp;정의
			@param&nbsp;{Number}&nbsp;[htOption.nYear=현재년]&nbsp;초기에&nbsp;표시될&nbsp;달력의&nbsp;연도
			@param&nbsp;{Number}&nbsp;[htOption.nMonth=현재월]&nbsp;초기에&nbsp;표시될&nbsp;달력의&nbsp;달
			@param&nbsp;{Number}&nbsp;[htOption.nDate=현재일]&nbsp;초기에&nbsp;표시될&nbsp;달력의&nbsp;일
			@param&nbsp;{String}&nbsp;[htOption.sTitleFormat=&quot;yyyy-mm&quot;]&nbsp;className이&nbsp;&#39;[prefix]title&#39;&nbsp;인&nbsp;엘리먼트를&nbsp;찾아서&nbsp;해당&nbsp;형식대로&nbsp;날짜를&nbsp;출력한다.&nbsp;다음의&nbsp;형식을&nbsp;사용할&nbsp;수&nbsp;있다.
			&lt;table&gt;
			&lt;tbody&gt;&lt;tr&gt;
				&lt;th&gt;표시형식&lt;/th&gt;
				&lt;th&gt;설명&lt;/th&gt;
				&lt;th&gt;결과&lt;/th&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;yyyy&lt;/td&gt;
					&lt;td&gt;4자리&nbsp;연도&lt;/td&gt;
					&lt;td&gt;2010&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;yy&lt;/td&gt;
					&lt;td&gt;2자리&nbsp;연도&lt;/td&gt;
					&lt;td&gt;10&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;mm&lt;/td&gt;
					&lt;td&gt;2자리&nbsp;월&lt;/td&gt;
					&lt;td&gt;09&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;m&lt;/td&gt;
					&lt;td&gt;1자리&nbsp;월&lt;/td&gt;
					&lt;td&gt;9&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;M&lt;/td&gt;
					&lt;td&gt;aMonthTitle&nbsp;옵션&nbsp;값으로&nbsp;표시&lt;/td&gt;
					&lt;td&gt;SEP&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;&lt;/table&gt;
			@param&nbsp;{String}&nbsp;[htOption.sYearTitleFormat=&quot;yyyy&quot;]&nbsp;className이&nbsp;&#39;[prefix]year&#39;&nbsp;인&nbsp;엘리먼트를&nbsp;찾아서&nbsp;해당&nbsp;형식대로&nbsp;연도를&nbsp;출력한다.&nbsp;option의&nbsp;sTitleFormat에서&nbsp;사용할&nbsp;수&nbsp;있는&nbsp;형식에서&nbsp;연도&nbsp;표시&nbsp;형식을&nbsp;사용할&nbsp;수&nbsp;있다.
			@param&nbsp;{String}&nbsp;[htOption.sMonthTitleFormat=&quot;m&quot;]&nbsp;className이&nbsp;&#39;[prefix]month&#39;&nbsp;인&nbsp;엘리먼트를&nbsp;찾아서&nbsp;해당&nbsp;형식대로&nbsp;월을&nbsp;출력한다.&nbsp;option의&nbsp;sTitleFormat에서&nbsp;사용할&nbsp;수&nbsp;있는&nbsp;형식에서&nbsp;월&nbsp;표시&nbsp;형식을&nbsp;사용할&nbsp;수&nbsp;있다.
			@param&nbsp;{Array}&nbsp;[htOption.aMonthTitle=[&quot;JAN&quot;,&quot;FEB&quot;,&quot;MAR&quot;,&quot;APR&quot;,&quot;MAY&quot;,&quot;JUN&quot;,&quot;JUL&quot;,&quot;AUG&quot;,&quot;SEP&quot;,&quot;OCT&quot;,&quot;NOV&quot;,&quot;DEC&quot;]]&nbsp;각&nbsp;월의&nbsp;이름을&nbsp;설정할&nbsp;수&nbsp;있다.&nbsp;1월부터&nbsp;순서대로&nbsp;배열로&nbsp;정의한다.&nbsp;option의&nbsp;sTitleFormat&nbsp;표시형식에서&nbsp;M을&nbsp;사용하면&nbsp;여기서&nbsp;설정된&nbsp;이름으로&nbsp;표시할&nbsp;수&nbsp;있다.
			@param&nbsp;{Boolean}&nbsp;[htOption.bDrawOnload=true]&nbsp;달력을&nbsp;로딩과&nbsp;동시에&nbsp;바로&nbsp;표시할&nbsp;것인지&nbsp;여부
		@example
			var&nbsp;oCalendar&nbsp;=&nbsp;new&nbsp;jindo.Calendar(&quot;calendar_layer&quot;,&nbsp;{
				sClassPrefix&nbsp;:&nbsp;&quot;calendar-&quot;,
				nYear&nbsp;:&nbsp;1983,
				nMonth&nbsp;:&nbsp;5,
				nDate&nbsp;:&nbsp;12,
				sTitleFormat&nbsp;:&nbsp;&quot;yyyy-mm&quot;,&nbsp;//설정될&nbsp;title의&nbsp;형식
				sYearTitleFormat&nbsp;:&nbsp;&quot;yyyy&quot;,&nbsp;//설정될&nbsp;연&nbsp;title의&nbsp;형식
				sMonthTitleFormat&nbsp;:&nbsp;&quot;m&quot;,&nbsp;//설정될&nbsp;월&nbsp;title의&nbsp;형식
				aMonthTitle&nbsp;:&nbsp;[&quot;JAN&quot;,&nbsp;&quot;FEB&quot;,&nbsp;&quot;MAR&quot;,&nbsp;&quot;APR&quot;,&nbsp;&quot;MAY&quot;,&nbsp;&quot;JUN&quot;,&nbsp;&quot;JUL&quot;,&nbsp;&quot;AUG&quot;,&nbsp;&quot;SEP&quot;,&nbsp;&quot;OCT&quot;,&nbsp;&quot;NOV&quot;,&nbsp;&quot;DEC&quot;],&nbsp;//월의&nbsp;이름을&nbsp;설정&nbsp;&quot;title&quot;&nbsp;세팅시&nbsp;적용
				bDrawOnload&nbsp;:&nbsp;true&nbsp;//로딩과&nbsp;동시에&nbsp;바로&nbsp;그릴것인지&nbsp;여부
			}).attach({
				beforeDraw&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//달력을&nbsp;새로&nbsp;그리기&nbsp;전&nbsp;발생
					//전달되는&nbsp;이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	nYear&nbsp;:&nbsp;(Number)&nbsp;연&nbsp;(ex.&nbsp;2009)&nbsp;
					//	nMonth&nbsp;:&nbsp;(Number)&nbsp;월&nbsp;(ex.&nbsp;5)
					//}
					//oCustomEvent.stop()을&nbsp;실행하면&nbsp;draw&nbsp;커스텀&nbsp;이벤트가&nbsp;발생하지&nbsp;않는다.&nbsp;
				},
				draw&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//달력을&nbsp;새로&nbsp;그리는&nbsp;중&nbsp;발생
					//전달되는&nbsp;이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	elDate&nbsp;:&nbsp;(HTMLElement)&nbsp;날짜가&nbsp;쓰여질&nbsp;목표&nbsp;엘리먼트
					//&nbsp;&nbsp;elDateContainer&nbsp;:&nbsp;(HTMLElement)&nbsp;week의&nbsp;child&nbsp;엘리먼트로&nbsp;날짜가&nbsp;쓰여질&nbsp;목표&nbsp;엘리먼트를&nbsp;감싸고&nbsp;있는&nbsp;상위&nbsp;엘리먼트.&nbsp;(element와&nbsp;같을&nbsp;수도&nbsp;있음)&nbsp;
					//	nYear&nbsp;:&nbsp;(Number)&nbsp;연&nbsp;(ex.&nbsp;2009)&nbsp;
					//	nMonth&nbsp;:&nbsp;(Number)&nbsp;월&nbsp;(ex.&nbsp;5)
					//	nDate&nbsp;:&nbsp;(Number)&nbsp;일&nbsp;(ex.&nbsp;12)
					//	bPrevMonth&nbsp;:&nbsp;(Boolean)&nbsp;그려질&nbsp;날이&nbsp;이전달의&nbsp;날인지&nbsp;여부
					//	bNextMonth&nbsp;:&nbsp;(Boolean)&nbsp;그려질&nbsp;날이&nbsp;다음달의&nbsp;날인지&nbsp;여부
					//}
				},
				afterDraw&nbsp;:&nbsp;function(oCustomEvent)&nbsp;{
					//달력을&nbsp;그린&nbsp;이후&nbsp;발생
					//전달되는&nbsp;이벤트&nbsp;객체&nbsp;oCustomEvent&nbsp;=&nbsp;{
					//	nYear&nbsp;:&nbsp;(Number)&nbsp;연&nbsp;(ex.&nbsp;2009)&nbsp;
					//	nMonth&nbsp;:&nbsp;(Number)&nbsp;월&nbsp;(ex.&nbsp;5)
					//}
				}
			});
	**/
	$init&nbsp;:&nbsp;function(sLayerId,&nbsp;htOption)&nbsp;{
		var&nbsp;htToday&nbsp;=&nbsp;this.constructor.getToday();
		this.setToday(htToday.nYear,&nbsp;htToday.nMonth,&nbsp;htToday.nDate);
		this._elLayer&nbsp;=&nbsp;jindo.$(sLayerId);
		this._htDefaultOption&nbsp;=&nbsp;{
			sClassPrefix&nbsp;:&nbsp;&quot;calendar-&quot;,
			nYear&nbsp;:&nbsp;this._htToday.nYear,
			nMonth&nbsp;:&nbsp;this._htToday.nMonth,
			nDate&nbsp;:&nbsp;this._htToday.nDate,
					
			sTitleFormat&nbsp;:&nbsp;&quot;yyyy-mm&quot;,
			sYearTitleFormat&nbsp;:&nbsp;&quot;yyyy&quot;,
			sMonthTitleFormat&nbsp;:&nbsp;&quot;m&quot;,
			
			aMonthTitle&nbsp;:&nbsp;[&quot;JAN&quot;,&nbsp;&quot;FEB&quot;,&nbsp;&quot;MAR&quot;,&nbsp;&quot;APR&quot;,&nbsp;&quot;MAY&quot;,&nbsp;&quot;JUN&quot;,&nbsp;&quot;JUL&quot;,&nbsp;&quot;AUG&quot;,&nbsp;&quot;SEP&quot;,&nbsp;&quot;OCT&quot;,&nbsp;&quot;NOV&quot;,&nbsp;&quot;DEC&quot;],
			bDrawOnload&nbsp;:&nbsp;true
		};
		
		this.option(this._htDefaultOption);
		this.option(htOption&nbsp;||&nbsp;{});
		
		this._assignHTMLElements();
		this.activate();
		this.setDate(this.option(&quot;nYear&quot;),&nbsp;this.option(&quot;nMonth&quot;),&nbsp;this.option(&quot;nDate&quot;));
		if&nbsp;(this.option(&quot;bDrawOnload&quot;))&nbsp;{
			this.draw();
		}
	},
	
	/**
		기준&nbsp;엘리먼트(달력&nbsp;레이어&nbsp;엘리먼트)를&nbsp;가져온다.
		
		@method&nbsp;getBaseElement
		@return&nbsp;{HTMLElement}&nbsp;달력&nbsp;레이어
	**/
	getBaseElement&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this._elLayer;
	},
	
	/**
		현재&nbsp;설정된&nbsp;날짜를&nbsp;가져온다.
		
		@method&nbsp;getDate
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
		@example
			oCalendar.getDate();&nbsp;//&nbsp;{&nbsp;nYear&nbsp;:&nbsp;2000,&nbsp;nMonth&nbsp;:&nbsp;1,&nbsp;nDate&nbsp;:&nbsp;31&nbsp;}&nbsp;
	**/
	getDate&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this._htDate;
	},
	
	/**
		그려진&nbsp;달력의&nbsp;날짜엘리먼트로&nbsp;해당하는&nbsp;날짜를&nbsp;구한다.
		
		@method&nbsp;getDateOfElement
		@param&nbsp;{HTMLElement}&nbsp;el&nbsp;week엘리먼트의&nbsp;자식노드로&nbsp;존재하는&nbsp;7개의&nbsp;엘리먼트중&nbsp;하나
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
		@example&nbsp;
			oCalendar.getDateOfElement(el);&nbsp;//&nbsp;{&nbsp;nYear&nbsp;:&nbsp;2000,&nbsp;nMonth&nbsp;:&nbsp;1,&nbsp;nDate&nbsp;:&nbsp;31&nbsp;}
	**/
	getDateOfElement&nbsp;:&nbsp;function(el)&nbsp;{
		var&nbsp;nDateIndex&nbsp;=&nbsp;jindo.$A(this._aDateContainerElement).indexOf(el);
		if&nbsp;(nDateIndex&nbsp;&gt;&nbsp;-1)&nbsp;{
			return&nbsp;this._aMetaData[nDateIndex];
		}
		return&nbsp;null;
	},

	/**
		오늘&nbsp;정보를&nbsp;설정한다.&lt;br/&gt;
		JavaScript의&nbsp;new&nbsp;Date()는&nbsp;사용자&nbsp;로컬환경의&nbsp;시간을&nbsp;따르므로,&nbsp;서버에서&nbsp;내려주는&nbsp;오늘의&nbsp;정보를&nbsp;설정하기&nbsp;위해&nbsp;사용한다.
		
		@method&nbsp;setToday
		@param&nbsp;{Number}&nbsp;nYear&nbsp;년
		@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
		@param&nbsp;{Number}&nbsp;nDate&nbsp;일
		@return&nbsp;{this}&nbsp;오늘&nbsp;정보를&nbsp;설정한&nbsp;인스턴스&nbsp;자신
	**/
	setToday&nbsp;:&nbsp;function(nYear,&nbsp;nMonth,&nbsp;nDate)&nbsp;{
		if&nbsp;(!this._htToday)&nbsp;{
			this._htToday&nbsp;=&nbsp;{};
		}
		this._htToday.nYear&nbsp;=&nbsp;nYear;
		this._htToday.nMonth&nbsp;=&nbsp;nMonth;
		this._htToday.nDate&nbsp;=&nbsp;nDate;
		return&nbsp;this;
	},
	
	/**
		오늘의&nbsp;정보를&nbsp;가지는&nbsp;Hash&nbsp;Table을&nbsp;가져온다.
		
		@method&nbsp;getToday
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
		@example&nbsp;
			oCalendar.getToday();&nbsp;//&nbsp;{&nbsp;nYear&nbsp;:&nbsp;2000,&nbsp;nMonth&nbsp;:&nbsp;1,&nbsp;nDate&nbsp;:&nbsp;31&nbsp;}
	**/
	getToday&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;{
			nYear&nbsp;:&nbsp;this._htToday.nYear,
			nMonth&nbsp;:&nbsp;this._htToday.nMonth,
			nDate&nbsp;:&nbsp;this._htToday.nDate
		};
	},
	
	/**
		현재&nbsp;달력의&nbsp;날짜를&nbsp;설정한다.
		
		@method&nbsp;setDate
		@param&nbsp;{Number}&nbsp;nYear&nbsp;연도&nbsp;값&nbsp;(ex.&nbsp;2008)
		@param&nbsp;{Number}&nbsp;nMonth&nbsp;월&nbsp;값&nbsp;(1&nbsp;~&nbsp;12)
		@param&nbsp;{Number}&nbsp;nDate&nbsp;일&nbsp;값&nbsp;(1&nbsp;~&nbsp;31)
	**/
	setDate&nbsp;:&nbsp;function(nYear,&nbsp;nMonth,&nbsp;nDate)&nbsp;{
		this._htDate&nbsp;=&nbsp;{
			nYear&nbsp;:&nbsp;nYear,
			nMonth&nbsp;:&nbsp;(nMonth&nbsp;*&nbsp;1),
			nDate&nbsp;:&nbsp;(nDate&nbsp;*&nbsp;1)
		};
	},
	
	/**
		현재&nbsp;표시된&nbsp;달력의&nbsp;날짜를&nbsp;가져온다.
		
		@method&nbsp;getShownDate
		@remark&nbsp;기본으로&nbsp;설정된&nbsp;날짜&nbsp;또는&nbsp;setDate로&nbsp;설정된&nbsp;날짜와&nbsp;다른&nbsp;경우,&nbsp;nDate&nbsp;값은&nbsp;1이다.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
		@example&nbsp;
			oCalendar.getShownDate();&nbsp;//&nbsp;{&nbsp;nYear&nbsp;:&nbsp;2000,&nbsp;nMonth&nbsp;:&nbsp;1,&nbsp;nDate&nbsp;:&nbsp;1&nbsp;}
	**/
	getShownDate&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this._getShownDate();
	},
	
	_getShownDate&nbsp;:&nbsp;function()&nbsp;{
		return&nbsp;this.htShownDate&nbsp;||&nbsp;this.getDate();
	},

	_setShownDate&nbsp;:&nbsp;function(nYear,&nbsp;nMonth)&nbsp;{
		this.htShownDate&nbsp;=&nbsp;{
			nYear&nbsp;:&nbsp;nYear,
			nMonth&nbsp;:&nbsp;(nMonth&nbsp;*&nbsp;1),
			nDate&nbsp;:&nbsp;1
		};
	},

	_assignHTMLElements&nbsp;:&nbsp;function()&nbsp;{
		var&nbsp;sClassPrefix&nbsp;=&nbsp;this.option(&quot;sClassPrefix&quot;),
			elLayer&nbsp;=&nbsp;this.getBaseElement();
	
		if&nbsp;((this.elBtnPrevYear&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;btn-prev-year&quot;),&nbsp;elLayer)))&nbsp;{
			this.wfPrevYear&nbsp;=&nbsp;jindo.$Fn(function(oEvent){
				oEvent.stop(jindo.$Event.CANCEL_DEFAULT);
				this.draw(-1,&nbsp;0,&nbsp;true);
			},&nbsp;this);
		}
		if&nbsp;((this.elBtnPrevMonth&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;btn-prev-mon&quot;),&nbsp;elLayer)))&nbsp;{
			this.wfPrevMonth&nbsp;=&nbsp;jindo.$Fn(function(oEvent){
				oEvent.stop(jindo.$Event.CANCEL_DEFAULT);
				this.draw(0,&nbsp;-1,&nbsp;true);
			},&nbsp;this);	
		}
		if&nbsp;((this.elBtnNextMonth&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;btn-next-mon&quot;),&nbsp;elLayer)))&nbsp;{
			this.wfNextMonth&nbsp;=&nbsp;jindo.$Fn(function(oEvent){
				oEvent.stop(jindo.$Event.CANCEL_DEFAULT);
				this.draw(0,&nbsp;1,&nbsp;true);
			},&nbsp;this);
		}
		if&nbsp;((this.elBtnNextYear&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;btn-next-year&quot;),&nbsp;elLayer)))&nbsp;{
			this.wfNextYear&nbsp;=&nbsp;jindo.$Fn(function(oEvent){
				oEvent.stop(jindo.$Event.CANCEL_DEFAULT);
				this.draw(1,&nbsp;0,&nbsp;true);
			},&nbsp;this);
		}
		
		this.elTitle&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;title&quot;),&nbsp;elLayer);
		this.elTitleYear&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;title-year&quot;),&nbsp;elLayer);
		this.elTitleMonth&nbsp;=&nbsp;jindo.$$.getSingle((&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;title-month&quot;),&nbsp;elLayer);
		var&nbsp;elWeekTemplate&nbsp;=&nbsp;jindo.$$.getSingle(&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;week&quot;,&nbsp;elLayer);
		this.elWeekTemplate&nbsp;=&nbsp;elWeekTemplate.cloneNode(true);
		this.elWeekAppendTarget&nbsp;=&nbsp;elWeekTemplate.parentNode;
	},
	
	_setCalendarTitle&nbsp;:&nbsp;function(nYear,&nbsp;nMonth,&nbsp;sType)&nbsp;{
		if&nbsp;(nMonth&nbsp;&lt;&nbsp;10)&nbsp;{
			nMonth&nbsp;=&nbsp;(&quot;0&quot;&nbsp;+&nbsp;(nMonth&nbsp;*&nbsp;1)).toString();
		}&nbsp;
		
		var&nbsp;elTitle&nbsp;=&nbsp;this.elTitle,
			sTitleFormat&nbsp;=&nbsp;this.option(&quot;sTitleFormat&quot;),
			sTitle;
		
		if&nbsp;(typeof&nbsp;sType&nbsp;!=&nbsp;&quot;undefined&quot;)&nbsp;{
			switch&nbsp;(sType)&nbsp;{
				case&nbsp;&quot;year&quot;&nbsp;:
					elTitle&nbsp;=&nbsp;this.elTitleYear;
					sTitleFormat&nbsp;=&nbsp;this.option(&quot;sYearTitleFormat&quot;);
					sTitle&nbsp;=&nbsp;sTitleFormat.replace(/yyyy/g,&nbsp;nYear).replace(/y/g,&nbsp;(nYear).toString().substr(2,2));
				break;
				case&nbsp;&quot;month&quot;&nbsp;:
					elTitle&nbsp;=&nbsp;this.elTitleMonth;
					sTitleFormat&nbsp;=&nbsp;this.option(&quot;sMonthTitleFormat&quot;);
					sTitle&nbsp;=&nbsp;sTitleFormat.replace(/mm/g,&nbsp;nMonth).replace(/m/g,&nbsp;(nMonth&nbsp;*&nbsp;1)).replace(/M/g,&nbsp;this.option(&quot;aMonthTitle&quot;)[nMonth-1]);&nbsp;
				break;
			}
		}&nbsp;else&nbsp;{
			sTitle&nbsp;=&nbsp;sTitleFormat.replace(/yyyy/g,&nbsp;nYear).replace(/y/g,&nbsp;(nYear).toString().substr(2,2)).replace(/mm/g,&nbsp;nMonth).replace(/m/g,&nbsp;(nMonth&nbsp;*&nbsp;1)).replace(/M/g,&nbsp;this.option(&quot;aMonthTitle&quot;)[nMonth-1]&nbsp;);
		}&nbsp;&nbsp;
		
		jindo.$Element(elTitle).text(sTitle);
	},
	
	/**
		Calendar를&nbsp;그린다.
		
		@method&nbsp;draw
		@param&nbsp;{Number}&nbsp;nYear&nbsp;연도&nbsp;값&nbsp;(ex.&nbsp;2008)
		@param&nbsp;{Number}&nbsp;nMonth&nbsp;월&nbsp;값&nbsp;(1&nbsp;~&nbsp;12)
		@param&nbsp;{Boolean}&nbsp;[bRelative]&nbsp;연도와&nbsp;월&nbsp;값이&nbsp;상대&nbsp;값인지&nbsp;여부
		@example
			oCalendar.draw();&nbsp;//현재&nbsp;설정된&nbsp;날짜의&nbsp;달력을&nbsp;그린다.
			oCalendar.draw(2008,&nbsp;12);&nbsp;//2008년&nbsp;12월&nbsp;달력을&nbsp;그린다.
			oCalendar.draw(null,&nbsp;12);&nbsp;//현재&nbsp;표시된&nbsp;달력의&nbsp;12월을&nbsp;그린다.
			oCalendar.draw(2010,&nbsp;null);&nbsp;//2010년&nbsp;현재&nbsp;표시된&nbsp;달력의&nbsp;월을&nbsp;그린다.
			oCalendar.draw(0,&nbsp;1,&nbsp;true);&nbsp;//현재&nbsp;표시된&nbsp;달력의&nbsp;다음&nbsp;달을&nbsp;그린다.
			oCalendar.draw(-1,&nbsp;null,&nbsp;true);&nbsp;//현재&nbsp;표시된&nbsp;달력의&nbsp;이전&nbsp;연도를&nbsp;그린다.
	**/
	draw&nbsp;:&nbsp;function(nYear,&nbsp;nMonth,&nbsp;bRelative)&nbsp;{
		var&nbsp;sClassPrefix&nbsp;=&nbsp;this.option(&quot;sClassPrefix&quot;),
			htDate&nbsp;=&nbsp;this.getDate(),
			oShownDate&nbsp;=&nbsp;this._getShownDate();
			
		if&nbsp;(oShownDate&nbsp;&amp;&amp;&nbsp;typeof&nbsp;bRelative&nbsp;!=&nbsp;&quot;undefined&quot;&nbsp;&amp;&amp;&nbsp;bRelative)&nbsp;{
			var&nbsp;htRelativeDate&nbsp;=&nbsp;this.constructor.getRelativeDate(nYear,&nbsp;nMonth,&nbsp;0,&nbsp;oShownDate);
			nYear&nbsp;=&nbsp;htRelativeDate.nYear;
			nMonth&nbsp;=&nbsp;htRelativeDate.nMonth;
		}&nbsp;else&nbsp;if&nbsp;(typeof&nbsp;nYear&nbsp;==&nbsp;&quot;undefined&quot;&nbsp;&amp;&amp;&nbsp;typeof&nbsp;nMonth&nbsp;==&nbsp;&quot;undefined&quot;&nbsp;&amp;&amp;&nbsp;typeof&nbsp;bRelative&nbsp;==&nbsp;&quot;undefined&quot;)&nbsp;{
			nYear&nbsp;=&nbsp;htDate.nYear;
			nMonth&nbsp;=&nbsp;htDate.nMonth;
		}&nbsp;else&nbsp;{
			nYear&nbsp;=&nbsp;nYear&nbsp;||&nbsp;oShownDate.nYear;
			nMonth&nbsp;=&nbsp;nMonth&nbsp;||&nbsp;oShownDate.nMonth;&nbsp;
		}
		
		/**
			달력을&nbsp;그리기&nbsp;전에&nbsp;발생
			
			@event&nbsp;beforeDraw
			@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
			@param&nbsp;{Number}&nbsp;nYear&nbsp;그려질&nbsp;달력의&nbsp;연도
			@param&nbsp;{Number}&nbsp;nMonth&nbsp;그려질&nbsp;달력의&nbsp;월
			@param&nbsp;{Function}&nbsp;stop&nbsp;레이어&nbsp;보여주는&nbsp;것을&nbsp;중단하는&nbsp;메서드
			@example
				//&nbsp;beforeDraw&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링
				oCalendar.attach(&quot;beforeDraw&quot;,&nbsp;function(oCustomEvent){&nbsp;...&nbsp;});
				
				//&nbsp;달력이&nbsp;보여지지&nbsp;않도록&nbsp;처리
				oCalendar.attach(&quot;beforeShow&quot;,&nbsp;function(oCustomEvent){
					oCustomEvent.stop();
				});
		**/
		if&nbsp;(this.fireEvent(&quot;beforeDraw&quot;,&nbsp;{
			nYear:&nbsp;nYear,
			nMonth:&nbsp;nMonth
		}))&nbsp;{
			if&nbsp;(this.elTitle)&nbsp;{
				this._setCalendarTitle(nYear,&nbsp;nMonth);
			}
			if&nbsp;(this.elTitleYear)&nbsp;{
				this._setCalendarTitle(nYear,&nbsp;nMonth,&nbsp;&quot;year&quot;);
			}
			if&nbsp;(this.elTitleMonth)&nbsp;{
				this._setCalendarTitle(nYear,&nbsp;nMonth,&nbsp;&quot;month&quot;);
			}
			
			this._clear(jindo.Calendar.getWeeks(nYear,&nbsp;nMonth));
			this._setShownDate(nYear,&nbsp;nMonth);
			
			var&nbsp;htToday&nbsp;=&nbsp;this.getToday(),		
				nFirstDay&nbsp;=&nbsp;this.constructor.getFirstDay(nYear,&nbsp;nMonth),
				nLastDay&nbsp;=&nbsp;this.constructor.getLastDay(nYear,&nbsp;nMonth),
				nLastDate&nbsp;=&nbsp;this.constructor.getLastDate(nYear,&nbsp;nMonth),
				nDay&nbsp;=&nbsp;0,
				htDatePrevMonth&nbsp;=&nbsp;this.constructor.getRelativeDate(0,&nbsp;-1,&nbsp;0,&nbsp;{nYear:nYear,&nbsp;nMonth:nMonth,&nbsp;nDate:1}),
				htDateNextMonth&nbsp;=&nbsp;this.constructor.getRelativeDate(0,&nbsp;1,&nbsp;0,&nbsp;{nYear:nYear,&nbsp;nMonth:nMonth,&nbsp;nDate:1}),
				nPrevMonthLastDate&nbsp;=&nbsp;this.constructor.getLastDate(htDatePrevMonth.nYear,&nbsp;htDatePrevMonth.nMonth),	
				aDate&nbsp;=&nbsp;[],
				bPrevMonth,
				bNextMonth,
				welDateContainer,
				nTempYear,
				nTempMonth,
				oParam,
				nIndexOfLastDate,
				elWeek,
				i;
				
			var&nbsp;nWeeks&nbsp;=&nbsp;this.constructor.getWeeks(nYear,&nbsp;nMonth);
		
			for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;nWeeks;&nbsp;i++)&nbsp;{
				elWeek&nbsp;=&nbsp;this.elWeekTemplate.cloneNode(true);
				jindo.$Element(elWeek).appendTo(this.elWeekAppendTarget);
				this._aWeekElement.push(elWeek);
			}
			this._aDateElement&nbsp;=&nbsp;jindo.$$(&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;date&quot;,&nbsp;this.elWeekAppendTarget);
			this._aDateContainerElement&nbsp;=&nbsp;jindo.$$(&quot;.&quot;&nbsp;+&nbsp;sClassPrefix&nbsp;+&nbsp;&quot;week&nbsp;&gt;&nbsp;*&quot;,&nbsp;this.elWeekAppendTarget);
				
			if&nbsp;(nFirstDay&nbsp;&gt;&nbsp;0)&nbsp;{
				for&nbsp;(i&nbsp;=&nbsp;nPrevMonthLastDate&nbsp;-&nbsp;nFirstDay;&nbsp;i&nbsp;&lt;&nbsp;nPrevMonthLastDate;&nbsp;i++)&nbsp;{
					aDate.push(i&nbsp;+&nbsp;1);
				}
			}
			for&nbsp;(i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;nLastDate&nbsp;+&nbsp;1;&nbsp;i++)&nbsp;{
				aDate.push(i);	
			}
			nIndexOfLastDate&nbsp;=&nbsp;aDate.length&nbsp;-&nbsp;1;
			
			for&nbsp;(i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;7&nbsp;-&nbsp;nLastDay;&nbsp;i++)&nbsp;{
				aDate.push(i);	
			}
			
			for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;aDate.length;&nbsp;i++)&nbsp;{
				bPrevMonth&nbsp;=&nbsp;false;
				bNextMonth&nbsp;=&nbsp;false;
				welDateContainer&nbsp;=&nbsp;jindo.$Element(this._aDateContainerElement[i]);
				nTempYear&nbsp;=&nbsp;nYear;
				nTempMonth&nbsp;=&nbsp;nMonth;
				
				if&nbsp;(i&nbsp;&lt;&nbsp;nFirstDay)&nbsp;{
					bPrevMonth&nbsp;=&nbsp;true;
					welDateContainer.addClass(sClassPrefix&nbsp;+&nbsp;&quot;prev-mon&quot;);
					nTempYear&nbsp;=&nbsp;htDatePrevMonth.nYear;
					nTempMonth&nbsp;=&nbsp;htDatePrevMonth.nMonth;
				}&nbsp;else&nbsp;if&nbsp;(i&nbsp;&gt;&nbsp;nIndexOfLastDate)&nbsp;{
					bNextMonth&nbsp;=&nbsp;true;
					welDateContainer.addClass(sClassPrefix&nbsp;+&nbsp;&quot;next-mon&quot;);				
					nTempYear&nbsp;=&nbsp;htDateNextMonth.nYear;
					nTempMonth&nbsp;=&nbsp;htDateNextMonth.nMonth;
				}&nbsp;else&nbsp;{
					nTempYear&nbsp;=&nbsp;nYear;
					nTempMonth&nbsp;=&nbsp;nMonth;
				}
				
				if&nbsp;(nDay&nbsp;===&nbsp;0)&nbsp;{
					welDateContainer.addClass(sClassPrefix&nbsp;+&nbsp;&quot;sun&quot;);
				}
				if&nbsp;(nDay&nbsp;==&nbsp;6)&nbsp;{
					welDateContainer.addClass(sClassPrefix&nbsp;+&nbsp;&quot;sat&quot;);
				}
				if&nbsp;(nTempYear&nbsp;==&nbsp;htToday.nYear&nbsp;&amp;&amp;&nbsp;(nTempMonth&nbsp;*&nbsp;1)&nbsp;==&nbsp;htToday.nMonth&nbsp;&amp;&amp;&nbsp;aDate[i]&nbsp;==&nbsp;htToday.nDate)&nbsp;{
					welDateContainer.addClass(sClassPrefix&nbsp;+&nbsp;&quot;today&quot;);
				}
				
				oParam&nbsp;=&nbsp;{
					elDate&nbsp;:&nbsp;this._aDateElement[i],
					elDateContainer&nbsp;:&nbsp;welDateContainer.$value(),
					nYear&nbsp;:&nbsp;nTempYear,&nbsp;
					nMonth&nbsp;:&nbsp;nTempMonth,&nbsp;
					nDate&nbsp;:&nbsp;aDate[i],
					bPrevMonth&nbsp;:&nbsp;bPrevMonth,
					bNextMonth&nbsp;:&nbsp;bNextMonth,
					sHTML&nbsp;:&nbsp;aDate[i]
				};
				jindo.$Element(oParam.elDate).html(oParam.sHTML.toString());
				
				this._aMetaData.push({
					nYear&nbsp;:&nbsp;nTempYear,&nbsp;
					nMonth&nbsp;:&nbsp;nTempMonth,&nbsp;
					nDate&nbsp;:&nbsp;aDate[i]
				});
				
				nDay&nbsp;=&nbsp;(nDay&nbsp;+&nbsp;1)&nbsp;%&nbsp;7;
				
				/**
					달력을&nbsp;그리면서&nbsp;일이&nbsp;표시될&nbsp;때마다&nbsp;발생
					
					@event&nbsp;draw
					@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
					@param&nbsp;{Boolean}&nbsp;bPrevMonth&nbsp;그려질&nbsp;날이&nbsp;이전달의&nbsp;날인지&nbsp;여부
					@param&nbsp;{Boolean}&nbsp;bNextMonth&nbsp;그려질&nbsp;날이&nbsp;다음달의&nbsp;날인지&nbsp;여부
					@param&nbsp;{HTMLElement}&nbsp;elDate&nbsp;날이&nbsp;쓰여질&nbsp;대상&nbsp;엘리먼트
					@param&nbsp;{HTMLElement}&nbsp;elDateContainer&nbsp;className이&nbsp;[prefix]week로&nbsp;설정된&nbsp;엘리먼트의&nbsp;자식&nbsp;엘리먼트,&nbsp;elDate와&nbsp;같을&nbsp;수&nbsp;있음
					@param&nbsp;{Number}&nbsp;nDate&nbsp;그려질&nbsp;날의&nbsp;일
					@param&nbsp;{Number}&nbsp;nMonth&nbsp;그려질&nbsp;날의&nbsp;월
					@param&nbsp;{Number}&nbsp;nYear&nbsp;그려질&nbsp;날의&nbsp;연
					@param&nbsp;{String}&nbsp;sHTML&nbsp;대상&nbsp;엘리먼트에&nbsp;쓰여질&nbsp;HTML
					@example
						//&nbsp;draw&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링
						oCalendar.attach(&quot;draw&quot;,&nbsp;function(oCustomEvent){&nbsp;...&nbsp;});
						
						//&nbsp;10일에만&nbsp;진하게&nbsp;표시하기&nbsp;예제
						oCalendar.attach(&quot;draw&quot;,&nbsp;function(oCustomEvent){
							if(oCustomEvent.nDate&nbsp;==&nbsp;10){
								oCustomEvent.elDate.innerHTML&nbsp;=&nbsp;&#39;&lt;b&gt;&#39;&nbsp;+&nbsp;oCustomEvent.sHTML&nbsp;+&nbsp;&#39;&lt;/b&gt;&#39;;
							}
						});
				**/
				this.fireEvent(&quot;draw&quot;,&nbsp;oParam);
			}
			/**
				달력을&nbsp;모두&nbsp;그린&nbsp;후에&nbsp;발생
				
				@event&nbsp;afterDraw
				@param&nbsp;{String}&nbsp;sType&nbsp;커스텀&nbsp;이벤트명
				@param&nbsp;{Number}&nbsp;nYear&nbsp;그려진&nbsp;달력의&nbsp;연도
				@param&nbsp;{Number}&nbsp;nMonth&nbsp;그려진&nbsp;달력의&nbsp;월
				@example
					//&nbsp;afterDraw&nbsp;커스텀&nbsp;이벤트&nbsp;핸들링
					oCalendar.attach(&quot;afterDraw&quot;,&nbsp;function(oCustomEvent){&nbsp;...&nbsp;});
			**/
			this.fireEvent(&quot;afterDraw&quot;,&nbsp;{
				nYear&nbsp;:&nbsp;nYear,&nbsp;
				nMonth&nbsp;:&nbsp;nMonth
			});
		}
	},
	
	_clear&nbsp;:&nbsp;function(nWeek)&nbsp;{
		this._aMetaData&nbsp;=&nbsp;[];
		this._aWeekElement&nbsp;=&nbsp;[];
		jindo.$Element(this.elWeekAppendTarget).empty();
	},
	
	/**
		@method&nbsp;attachEvent
		@deprecated&nbsp;activate()&nbsp;사용권장
	**/
	attachEvent&nbsp;:&nbsp;function()&nbsp;{
		this.activate();
	},
	
	/**
		@method&nbsp;detachEvent
		@deprecated&nbsp;deactivate()&nbsp;사용권장
	**/
	detachEvent&nbsp;:&nbsp;function()&nbsp;{
		this.deactivate();
	},
	
	_onActivate&nbsp;:&nbsp;function()&nbsp;{
		if&nbsp;(this.elBtnPrevYear)&nbsp;{
			this.wfPrevYear.attach(this.elBtnPrevYear,&nbsp;&quot;click&quot;);
		}
		if&nbsp;(this.elBtnPrevMonth)&nbsp;{
			this.wfPrevMonth.attach(this.elBtnPrevMonth,&nbsp;&quot;click&quot;);
			
		}
		if&nbsp;(this.elBtnNextMonth)&nbsp;{
			this.wfNextMonth.attach(this.elBtnNextMonth,&nbsp;&quot;click&quot;);			
		}
		if&nbsp;(this.elBtnNextYear)&nbsp;{
			this.wfNextYear.attach(this.elBtnNextYear,&nbsp;&quot;click&quot;);
		}
	},
	
	_onDeactivate&nbsp;:&nbsp;function()&nbsp;{
		if&nbsp;(this.elBtnPrevYear)&nbsp;{
			this.wfPrevYear.detach(this.elBtnPrevYear,&nbsp;&quot;click&quot;);
		}
		if&nbsp;(this.elBtnPrevMonth)&nbsp;{
			this.wfPrevMonth.detach(this.elBtnPrevMonth,&nbsp;&quot;click&quot;);
		}
		if&nbsp;(this.elBtnNextMonth)&nbsp;{
			this.wfNextMonth.detach(this.elBtnNextMonth,&nbsp;&quot;click&quot;);			
		}
		if&nbsp;(this.elBtnNextYear)&nbsp;{
			this.wfNextYear.detach(this.elBtnNextYear,&nbsp;&quot;click&quot;);
		}
	}
	
}).extend(jindo.UIComponent);

/**
	오늘&nbsp;정보를&nbsp;설정한다.&lt;br/&gt;
	JavaScript의&nbsp;new&nbsp;Date()는&nbsp;사용자&nbsp;로컬환경의&nbsp;시간을&nbsp;따르므로,&nbsp;서버에서&nbsp;내려주는&nbsp;오늘의&nbsp;정보를&nbsp;설정하기&nbsp;위해&nbsp;사용한다.
	
	@method&nbsp;setToday
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@param&nbsp;{Number}&nbsp;nDate&nbsp;일
	@return&nbsp;{this}&nbsp;입력한&nbsp;오늘의&nbsp;정보를&nbsp;설정한&nbsp;인스턴스&nbsp;자신
**/
jindo.Calendar.setToday&nbsp;=&nbsp;function(nYear,&nbsp;nMonth,&nbsp;nDate)&nbsp;{
	if&nbsp;(!this._htToday)&nbsp;{
		this._htToday&nbsp;=&nbsp;{};
	}
	this._htToday.nYear&nbsp;=&nbsp;nYear;
	this._htToday.nMonth&nbsp;=&nbsp;nMonth;
	this._htToday.nDate&nbsp;=&nbsp;nDate;
	return&nbsp;this;
};

/**
	오늘의&nbsp;정보를&nbsp;가지는&nbsp;Hash&nbsp;Table을&nbsp;가져온다.
	
	@method&nbsp;getToday
	@static
&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
	@example&nbsp;
		oCalendar.getToday();&nbsp;//&nbsp;{&nbsp;nYear&nbsp;:&nbsp;2000,&nbsp;nMonth&nbsp;:&nbsp;1,&nbsp;nDate&nbsp;:&nbsp;31&nbsp;}
**/
jindo.Calendar.getToday&nbsp;=&nbsp;function()&nbsp;{
	var&nbsp;htToday&nbsp;=&nbsp;this._htToday&nbsp;||&nbsp;this.getDateHashTable(new&nbsp;Date());
	return&nbsp;{
		nYear&nbsp;:&nbsp;htToday.nYear,
		nMonth&nbsp;:&nbsp;htToday.nMonth,
		nDate&nbsp;:&nbsp;htToday.nDate
	};
};

/**
	Date&nbsp;객체를&nbsp;구한다.
	
	@method&nbsp;getDateObject
	@static
	@param&nbsp;{Object}&nbsp;htDate&nbsp;날짜&nbsp;객체
	@return&nbsp;{Date}&nbsp;Date&nbsp;객체&nbsp;인스턴스&nbsp;자신
	@example
		jindo.Calendar.getDateObject({nYear:2010,&nbsp;nMonth:5,&nbsp;nDate:12});
		jindo.Calendar.getDateObject(2010,&nbsp;5,&nbsp;12);&nbsp;//연,월,일
**/
jindo.Calendar.getDateObject&nbsp;=&nbsp;function(htDate)&nbsp;{
	if&nbsp;(arguments.length&nbsp;==&nbsp;3)&nbsp;{
		return&nbsp;new&nbsp;Date(arguments[0],&nbsp;arguments[1]&nbsp;-&nbsp;1,&nbsp;arguments[2]);
	}
	return&nbsp;new&nbsp;Date(htDate.nYear,&nbsp;htDate.nMonth&nbsp;-&nbsp;1,&nbsp;htDate.nDate);
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable&nbsp;객체를&nbsp;구한다.
	
	@method&nbsp;getDateHashTable
	@static
	@param&nbsp;{Date}&nbsp;Date&nbsp;날짜&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
	@example
		jindo.Calendar.getDateHashTable(2010,&nbsp;5,&nbsp;12);&nbsp;//&nbsp;{nYear:2010,&nbsp;nMonth:5,&nbsp;nDate:12}
		jindo.Calendar.getDateHashTable();&nbsp;//&nbsp;{nYear:2010,&nbsp;nMonth:5,&nbsp;nDate:12}
		jindo.Calendar.getDateHashTable(new&nbsp;Date(2009,1,2));&nbsp;//&nbsp;{nYear:2009,&nbsp;nMonth:2,&nbsp;nDate:1}
**/
jindo.Calendar.getDateHashTable&nbsp;=&nbsp;function(oDate)&nbsp;{
	if&nbsp;(arguments.length&nbsp;==&nbsp;3)&nbsp;{
		return&nbsp;{
			nYear&nbsp;:&nbsp;arguments[0],
			nMonth&nbsp;:&nbsp;arguments[1],
			nDate&nbsp;:&nbsp;arguments[2]
		};
	}&nbsp;
	if&nbsp;(arguments.length&nbsp;&lt;=&nbsp;1)&nbsp;{
		oDate&nbsp;=&nbsp;oDate&nbsp;||&nbsp;new&nbsp;Date();
	}
	return&nbsp;{
		nYear&nbsp;:&nbsp;oDate.getFullYear(),
		nMonth&nbsp;:&nbsp;oDate.getMonth()&nbsp;+&nbsp;1,
		nDate&nbsp;:&nbsp;oDate.getDate()
	};
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable로부터&nbsp;유닉스타임을&nbsp;구한다.
	
	@method&nbsp;getTime
	@static
&nbsp;&nbsp;&nbsp;&nbsp;@param&nbsp;{Object}&nbsp;htDate&nbsp;날짜&nbsp;정보가&nbsp;담긴&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@param&nbsp;{Number}&nbsp;htDate.nYear&nbsp;년
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@param&nbsp;{Number}&nbsp;htDate.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@param&nbsp;{Number}&nbsp;htDate.nDate&nbsp;일
	@return&nbsp;{Number}&nbsp;유닉스타임&nbsp;정보
	@example
		jindo.Calendar.getTime({nYear:2010,&nbsp;nMonth:5,&nbsp;nDate:12});&nbsp;//&nbsp;1273590000000
**/
jindo.Calendar.getTime&nbsp;=&nbsp;function(htDate)&nbsp;{
	return&nbsp;this.getDateObject(htDate).getTime();
};

/**
	해당&nbsp;연월의&nbsp;첫번째&nbsp;날짜의&nbsp;요일을&nbsp;구한다.
	
	@method&nbsp;getFirstDay
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@return&nbsp;{Number}&nbsp;요일&nbsp;(0~6)
**/
jindo.Calendar.getFirstDay&nbsp;=&nbsp;function(nYear,&nbsp;nMonth)&nbsp;{
	return&nbsp;new&nbsp;Date(nYear,&nbsp;nMonth&nbsp;-&nbsp;1,&nbsp;1).getDay();
};

/**
	해당&nbsp;연월의&nbsp;마지막&nbsp;날짜의&nbsp;요일을&nbsp;구한다.
	
	@method&nbsp;getLastDay
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@return&nbsp;{Number}&nbsp;요일&nbsp;(0~6)
**/
jindo.Calendar.getLastDay&nbsp;=&nbsp;function(nYear,&nbsp;nMonth)&nbsp;{
	return&nbsp;new&nbsp;Date(nYear,&nbsp;nMonth,&nbsp;0).getDay();
};

/**
	해당&nbsp;연월의&nbsp;마지막&nbsp;날짜를&nbsp;구한다.
	
	@method&nbsp;getLastDate
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@return&nbsp;{Number}&nbsp;날짜&nbsp;(1~31)
**/
jindo.Calendar.getLastDate&nbsp;=&nbsp;function(nYear,&nbsp;nMonth)&nbsp;{
	return&nbsp;new&nbsp;Date(nYear,&nbsp;nMonth,&nbsp;0).getDate();
};

/**
	해당&nbsp;연월의&nbsp;주의&nbsp;수를&nbsp;구한다.
	
	@method&nbsp;getWeeks
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@return&nbsp;{Number}&nbsp;주&nbsp;(4~6)
**/
jindo.Calendar.getWeeks&nbsp;=&nbsp;function(nYear,&nbsp;nMonth)&nbsp;{
	var&nbsp;nFirstDay&nbsp;=&nbsp;this.getFirstDay(nYear,&nbsp;nMonth),
		nLastDate&nbsp;=&nbsp;this.getLastDate(nYear,&nbsp;nMonth);
		
	return&nbsp;Math.ceil((nFirstDay&nbsp;+&nbsp;nLastDate)&nbsp;/&nbsp;7);	
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable로부터&nbsp;상대적인&nbsp;날짜의&nbsp;HashTable을&nbsp;구한다.
	
	@method&nbsp;getRelativeDate
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;상대적인&nbsp;연도&nbsp;(+/-로&nbsp;정의)
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;상대적인&nbsp;월&nbsp;(+/-로&nbsp;정의)
	@param&nbsp;{Number}&nbsp;nDate&nbsp;상대적인&nbsp;일&nbsp;(+/-로&nbsp;정의)
	@param&nbsp;{Object}&nbsp;htDate&nbsp;연월일&nbsp;HashTable
&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Object}&nbsp;연월일을&nbsp;담은&nbsp;객체
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nYear&nbsp;년도
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nMonth&nbsp;월
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@return&nbsp;{Number}&nbsp;.nDate&nbsp;일
	@example
		jindo.Calendar.getRelativeDate(1,&nbsp;0,&nbsp;0,&nbsp;{nYear:2000,&nbsp;nMonth:1,&nbsp;nDate:1});&nbsp;//&nbsp;{nYear:2001,&nbsp;nMonth:1,&nbsp;nDate:1}
		jindo.Calendar.getRelativeDate(0,&nbsp;0,&nbsp;-1,&nbsp;{nYear:2010,&nbsp;nMonth:1,&nbsp;nDate:1});&nbsp;//&nbsp;{nYear:2009,&nbsp;nMonth:12,&nbsp;nDate:31}
**/
jindo.Calendar.getRelativeDate&nbsp;=&nbsp;function(nYear,&nbsp;nMonth,&nbsp;nDate,&nbsp;htDate)&nbsp;{
	var&nbsp;beforeDate&nbsp;=&nbsp;jindo.$Date(new&nbsp;Date(htDate.nYear&nbsp;,&nbsp;htDate.nMonth,&nbsp;htDate.nDate));
	var&nbsp;day&nbsp;=&nbsp;{&quot;1&quot;:31,&quot;2&quot;:28,&quot;3&quot;:31,&quot;4&quot;:30,&quot;5&quot;:31,&quot;6&quot;:30,&quot;7&quot;:31,&quot;8&quot;:31,&quot;9&quot;:30,&quot;10&quot;:31,&quot;11&quot;:30,&quot;12&quot;:31};
	if(beforeDate.isLeapYear()){
		day&nbsp;=&nbsp;{&quot;1&quot;:31,&quot;2&quot;:29,&quot;3&quot;:31,&quot;4&quot;:30,&quot;5&quot;:31,&quot;6&quot;:30,&quot;7&quot;:31,&quot;8&quot;:31,&quot;9&quot;:30,&quot;10&quot;:31,&quot;11&quot;:30,&quot;12&quot;:31};
	}
	if(day[htDate.nMonth]&nbsp;==&nbsp;htDate.nDate&nbsp;){
		htDate.nDate&nbsp;=&nbsp;day[htDate.nMonth+nMonth];
	}
	var&nbsp;changeDate&nbsp;=&nbsp;this.getDateHashTable(new&nbsp;Date(htDate.nYear&nbsp;+&nbsp;nYear,&nbsp;htDate.nMonth&nbsp;+&nbsp;nMonth&nbsp;-&nbsp;1,&nbsp;htDate.nDate&nbsp;+&nbsp;nDate));
	return&nbsp;this.getDateHashTable(new&nbsp;Date(htDate.nYear&nbsp;+&nbsp;nYear,&nbsp;htDate.nMonth&nbsp;+&nbsp;nMonth&nbsp;-&nbsp;1,&nbsp;htDate.nDate&nbsp;+&nbsp;nDate));		
};

/**
	유효한&nbsp;날짜인지&nbsp;확인힌다.
	
	@method&nbsp;isValidDate
	@static
	@param&nbsp;{Number}&nbsp;nYear&nbsp;년
	@param&nbsp;{Number}&nbsp;nMonth&nbsp;월
	@param&nbsp;{Number}&nbsp;nDate&nbsp;일
	@return&nbsp;{Boolean}&nbsp;입력한&nbsp;날짜의&nbsp;유효&nbsp;여부
**/
jindo.Calendar.isValidDate&nbsp;=&nbsp;function(nYear,&nbsp;nMonth,&nbsp;nDate)&nbsp;{
	if&nbsp;(nMonth&nbsp;&lt;=&nbsp;12&nbsp;&amp;&amp;&nbsp;nDate&nbsp;&lt;=&nbsp;this.getLastDate(nYear,&nbsp;nMonth))&nbsp;{
		return&nbsp;true;
	}&nbsp;else&nbsp;{
		return&nbsp;false;
	}
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable이&nbsp;비교대상&nbsp;HashTable보다&nbsp;과거인지&nbsp;확인한다.
	
	@method&nbsp;isPast
	@static
	@param&nbsp;{Object}&nbsp;htDate&nbsp;비교를&nbsp;원하는&nbsp;날
	@param&nbsp;{Object}&nbsp;htComparisonDate&nbsp;비교할&nbsp;기준
	@return&nbsp;{Boolean}&nbsp;비교&nbsp;결과(비교대상보다&nbsp;과거인지&nbsp;여부)
**/
jindo.Calendar.isPast&nbsp;=&nbsp;function(htDate,&nbsp;htComparisonDate)&nbsp;{
	if&nbsp;(this.getTime(htDate)&nbsp;&lt;&nbsp;this.getTime(htComparisonDate))&nbsp;{
		return&nbsp;true;
	}&nbsp;
	return&nbsp;false;
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable이&nbsp;비교대상&nbsp;HashTable보다&nbsp;미래인지&nbsp;확인한다.
	
	@method&nbsp;isFuture
	@static
	@param&nbsp;{Object}&nbsp;htDate&nbsp;비교를&nbsp;원하는&nbsp;날
	@param&nbsp;{Object}&nbsp;htComparisonDate&nbsp;비교할&nbsp;기준
	@return&nbsp;{Boolean}&nbsp;비교&nbsp;결과(비교대상&nbsp;보다&nbsp;미래인지&nbsp;여부)
**/
jindo.Calendar.isFuture&nbsp;=&nbsp;function(htDate,&nbsp;htComparisonDate)&nbsp;{
	if&nbsp;(this.getTime(htDate)&nbsp;&gt;&nbsp;this.getTime(htComparisonDate))&nbsp;{
		return&nbsp;true;
	}&nbsp;
	return&nbsp;false;
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable이&nbsp;비교대상&nbsp;HashTable과&nbsp;같은&nbsp;날인지&nbsp;확인한다.
	
	@method&nbsp;isSameDate
	@static
	@param&nbsp;{Object}&nbsp;htDate&nbsp;비교를&nbsp;원하는&nbsp;날
	@param&nbsp;{Object}&nbsp;htComparisonDate&nbsp;비교할&nbsp;기준
	@return&nbsp;{Boolean}&nbsp;비교&nbsp;결과(비교대상과&nbsp;같은&nbsp;날인지&nbsp;여부)
**/
jindo.Calendar.isSameDate&nbsp;=&nbsp;function(htDate,&nbsp;htComparisonDate)&nbsp;{
	if&nbsp;(this.getTime(htDate)&nbsp;==&nbsp;this.getTime(htComparisonDate))&nbsp;{
		return&nbsp;true;
	}&nbsp;
	return&nbsp;false;
};

/**
	연월일을&nbsp;포함한&nbsp;HashTable이&nbsp;특정&nbsp;두&nbsp;날&nbsp;사이에&nbsp;존재하는지&nbsp;확인한다.
	
	@method&nbsp;isBetween
	@static
	@param&nbsp;{Object}&nbsp;htDate&nbsp;비교를&nbsp;원하는&nbsp;날
	@param&nbsp;{Object}&nbsp;htFrom&nbsp;시작&nbsp;날짜
	@param&nbsp;{Object}&nbsp;htTo&nbsp;끝&nbsp;날짜
	@return&nbsp;{Boolean}&nbsp;비교&nbsp;결과(특정&nbsp;두&nbsp;날&nbsp;사이에&nbsp;존재하는지&nbsp;여부)
	@example
		jindo.Calendar.isBetween({nYear:2010,&nbsp;nMonth:5,&nbsp;nDate:12},&nbsp;{nYear:2010,&nbsp;nMonth:1,&nbsp;nDate:1},&nbsp;{nYear:2010,&nbsp;nMonth:12,&nbsp;nDate:31});&nbsp;//&nbsp;true&nbsp;
**/
jindo.Calendar.isBetween&nbsp;=&nbsp;function(htDate,&nbsp;htFrom,&nbsp;htTo)&nbsp;{
	if&nbsp;(this.isFuture(htDate,&nbsp;htTo)&nbsp;||&nbsp;this.isPast(htDate,&nbsp;htFrom))&nbsp;{
		return&nbsp;false;
	}&nbsp;else&nbsp;{
		return&nbsp;true;
	}
};</pre>
		</div>
	</div>
</div>

			</div>
		</div>
		<!-- // main content -->

	</div>
	<!-- // container -->

	<!-- footer -->
	<div id="footer">
		<p>Copyright ©<a href="http://nhncorp.com/" target="_blank">NHN Corp.</a> Platform Ajax Team. All Rights Reserved.</p>
	</div>
	<!-- // footer -->

</div>
<!-- // wrap -->

<style type="text/css">

	.item {
		transition:background .2s linear;
		-webkit-transition:background .2s linear;
		-moz-transition:background .2s linear;
		-o-transition:background .2s linear;
		-ms-transition:background .2s linear;
	}
	
	.highlight {
		background-color:#ffffd8 !important;
	}
	
	li.selected a.highlight {
		background-color:#aa8 !important;
	}
	
	.hide-deprecated .deprecated-item, .hide-inherited .inherited-item, .private {
		display:none;
	}
	
	.scrollbar-v, .scrollbar-h { display:none; }
	.scrollbar-show { display:block; }
	
	.api-page .tbl_fold .more_history { display:none; }
	
	/* FILE */
	.file pre.code {
		border:1px solid #ccc;
		padding:0;
	}
	
	.file ol {
		padding-left: 4em;
		background-color: #f9f9f9;
	}

	.file ol li {
		list-style: decimal;
		border-left:1px solid #ccc;
		padding:2px 4px;
	}
	
	.file li.L1, .file li.L3, .file li.L5, .file li.L7, .file li.L9 {
		background-color: #f9f9f9;	
	}

	.file li.L0, .file li.L2, .file li.L4, .file li.L6, .file li.L8 { 
		background-color: #f0f0f0;
	}
	
</style>
<script type="text/javascript" src="../assets/prettify/prettify-min.js"></script>
<script type="text/javascript" src="../assets/hash.js"></script>
<script type="text/javascript" src="../assets/api-list.js"></script>
<script type="text/javascript" src="../assets/api-search.js"></script>
<script type="text/javascript" src="../assets/../api.js?callback=APISearch.setData"></script>
<script type="text/javascript">
	var projectRoot = "../";
	var projectAssets = "../assets";
	
    apiDocs(projectAssets);	
</script>
</body>
</html>